From: Micek Tom-ra1370 [Tom.Micek@motorola.com] Sent: Friday, March 22, 2002 9:00 AM To: 'Jim Mosley'; bill_chown@ims.com; daniel@san-jose.tt.slb.com; dave_dowding@agilent.com; don.organ@inovys.com; wahl@aloft.agere.com; Gordon_Robinson@3mts.com; gwilder@dal.asp.ti.com; gmaston@qwest.net; h.ehrenberg@att.net; jason_doege@inovys.com; jim_oreilly@agilent.com; jim.showman@inovys.com; jose.santiago@philips.com; larry.moran@teradyne.com; stuart.h.nelson@teradyne.com; Micek Tom-ra1370; tonyt@synopsys.com Subject: RE: P1450.4 Test Flow - Example to Clarify previous submission. To All, I have (3) concerns as we discuss bin's and flow: 1. Currently the hard bin declaration in STIL is in a Bin Map file external to the flow. There are pro's and con's to this rather than having the hard bin information being imbedded into the flow. The feeling is that having hard bin information part of the flow there is less chance of error beyond the Test Engineer. My personal feeling is that the hard bin information should be part of the individual tests but I would like to hear the group's thoughts. 2. Parallel test declares how many device sites are active. When a test fails for one or more of the DUT's there should be provisions for flow control as an option. 3. There is a feeling that the levels and timing should be separate files rather than being part imbedded into the test program. Does anyone know if this is being addressed in one of the other STIL sub groups? Regards, Tom Micek To attempt to clear up some of the confusion with my last example, I took Don Organ's example of the OddEven.still STILUS program and reformated the syntax to demonstrate how the binning could be set with more flexiblity than the "End on a Bin Node" scheme. Instead of Ending the flow in a Bin Node, the Flow now ends in an end node. The End node uses the variable "mySoftBin" to determine where to bin the part. This is the simpliest example. Both the "Exec" directive in the "Exit" section of the TestNodes Segments and the "BinTo" directive in the EndNode segments can contain more complex strings, which could represent equations or functions. Since it is not likely during a port that one test system language will match directly with another test system language, the fact that this info is stored as a string will allow the original binning setup to remain for documentation purposes. Flow "MAIN_FLOW" { Segment BEGIN { Type 'BeginNode'; Title "Contact; Exit { Result 'PASS'; Goto 'SEGMENT_2'; } } Segment SEGMENT_2 { Type 'TestNode'; Test 'TestContinuity'; Title "Contact"; Exit { Result 'PASS'; Goto 'SEGMENT_3'; } Exit { Result 'FAIL'; Set 'mySoftBin = 2'; Goto 'END_2'; } } Segment SEGMENT_3 { Type 'TestNode'; Test 'TestOddEvenFuncMin'; Title "OddEven Min"; Exit { Result 'PASS'; Goto 'SEGMENT_4'; Exit { Result 'FAIL'; Exec 'mySoftBin = 3'; Goto 'END_2'; } } Segment SEGMENT_4{ Type 'TestNode'; Test 'TestOddEvenFuncMax'; Title "OddEven Max"; Exit { Result 'Fail'; Goto 'SEGMENT_10'; } Exit { Result 'Pass'; Goto 'SEGMENT_6'; } } Segment SEGMENT_10 { Type 'FlowNode'; Title "Block segment <>"; Flow 'Seq005'; Exit { Result 'PASS'; Goto 'SEGMENT_11'; } Exit { Result 'FAIL'; Goto 'END_2'; } } Segment SEGMENT_6 { Type TEST; Test LeakHigh; Title "Leakage High"; Exit { Result 'PASS'; Goto 'SEGMENT_7'; } Exit { Result = 'FAIL'; Exec 'mySoftBin = 6'; Goto 'END_2'; } } Segment SEGMENT_7 { Type 'TestNode'; Test 'LeakLow'; Title "Leakage Low"; Exit { Result 'FAIL'; Exec 'mySoftBin = 7'; Goto 'END_2'; } Exit { Result = 'PASS'; Exec 'mySoftBin = 1'; Goto 'END_1'; } } Segment SEGMENT_11 { Type 'BranchNode'; Title "Branch segment <>"; TestOption 'MyTestOption'; Exit { Result 'TRUE'; GoTo SEGMENT_6; } Exit { Result 'FALSE'; Goto 'END_1'; } Segment END_1 { Type 'EndNode'; Test 'PowerDown'; BinTo 'mySoftBin'; } Segment END_2 { Type 'EndNode'; Test 'PowerDown2'; BinTo 'mySoftBin'; } } } Flow Seq005 { Segment SEGMENT_5 { Type TEST; Test TestOddEvenFuncNom; Title "OddEven Nom"; Position 400,320; Exit { Result = ' FAIL'; Exec 'mySoftBin = 4'; Return 1; // Return through first Exit Port of Node for Seq005 } Exit { Result = 'PASS'; Exec 'mySoftBin = 8'; Goto SEGMENT_8; } } Segment SEGMENT_8 { Type TEST; Test FuncMaxLog; Title "Failed Max, Passed Nom"; Position 400,440; Exit { Result 'PASS'; Return 0; } Exit { Result 'FAIL'; Exec 'mySoftBin = 8'; Return 1; // Return through 2nd Exit port of Node for Seq005 } } }